public class MyHeap {
    public void shiftUp(int child,int[] array) {
// 找到child的双亲
        int parent = (child - 1) / 2;
        while (child > 0) {
// 如果双亲比孩子大，parent满足堆的性质，调整结束
            if (array[parent] > array[child]) {
                break;
            } else{
// 将双亲与孩子节点进行交换
                int t = array[parent];
                array[parent] = array[child];
                array[child] = t;
// 小的元素向下移动，可能到值子树不满足对的性质，因此需要继续向上调增
                child = parent;
                parent = (child - 1) / 2;
            }
        }
    }
    public void bigUp(int child,int[] array) {
        int parent = (child - 1) / 2;
        while(child > 0) {
            if(array[parent] < array[child]) {
                int t = array[parent];
                array[parent] = array[child];
                array[child] = t;
            } else {
                break;
            }
            child = parent;
            parent = (child - 1) / 2;
        }
    }
}
